package com.dingreading.cloud.soms.entity;

import com.mybatisflex.annotation.Column;
import com.mybatisflex.annotation.Id;
import com.mybatisflex.annotation.KeyType;
import com.mybatisflex.annotation.Table;
import lombok.Data;

import java.io.Serializable;
import java.util.Date;

/**
 * 排课计划表
 */
@Data
@Table(value = "ca_schedule", dataSource = "ds3")
public class MstCaSchedule implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 自增主键ID
     */
    @Id(keyType = KeyType.Auto)
    private Long id;

    /**
     * 课程表/排课唯一标识符 (UID)
     */
    private String scheduleUid;

    /**
     * 伙伴UID
     */
    private String agencyUid;

    /**
     * 门店UID
     */
    private String storeUid;

    /**
     * 门店名称 (冗余字段)
     */
    private String storeName;

    /**
     * 排课日期 (多个日期用逗号分隔, 例如 "2023-03-20,2023-03-21")
     */
    private String teachDates;

    /**
     * 排课开始时间 (格式 HH:mm)
     */
    private String beginTime;

    /**
     * 排课结束时间 (格式 HH:mm)
     */
    private String endTime;

    /**
     * 排课/课程内容
     */
    private String content;

    /**
     * 关联的班级UID
     */
    private String classUid;

    /**
     * 关联的班级名称
     */
    private String className;

    /**
     * 关联的服务名称
     */
    private String projectName;

    /**
     * 关联的服务UID
     */
    private String projectUid;

    /**
     * 关联的服务阶段UID
     */
    private String stageUid;

    /**
     * 关联的服务阶段名称
     */
    private String stageName;

    /**
     * 关联的活动室/教室UID
     */
    private String roomUid;

    /**
     * 关联的活动室/教室名称
     */
    private String roomName;

    /**
     * 主讲教师UID
     */
    private String teacherUid;

    /**
     * 主讲教师姓名
     */
    private String teacherName;

    /**
     * 关联的导读/助教username集合 (多个用逗号分隔)
     */
    private String usernames;

    /**
     * 预约/参与成员数量
     */
    private Integer studentNum;

    /**
     * 排课总课时/活动总数
     */
    private Integer lessonNum;

    /**
     * 已上课时/活动数
     */
    private Integer useLessonNum;

    /**
     * 收费状态 (1: 收费, 0: 免费)
     */
    private Integer freeStatus;

    /**
     * 排课状态 (1: 提交, 0: 保存)
     */
    private Integer status;

    /**
     * 备注信息
     */
    private String remark;

    /**
     * 记录添加时间
     */
    @Column(onInsertValue = "now()")
    private Date addTime;

    /**
     * 记录最后编辑时间
     */
    @Column(onInsertValue = "now()", onUpdateValue = "now()")
    private Date editTime;

    /**
     * 创建人UID
     */
    private String addStaffUid;

    /**
     * 创建人姓名
     */
    private String addStaffName;

    /**
     * 最后更新人UID
     */
    private String lastStaffUid;

    /**
     * 最后更新人姓名
     */
    private String lastStaffName;

}
